package com.mitake.nick.example;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexEx {

	/**
	 * 
	  	.	符合任一字元
		\d	等於 [0-9] 數字
		\D	等於 [^0-9] 非數字
		\s	等於 [ \t\n\x0B\f\r] 空白字元
		\S	等於 [^ \t\n\x0B\f\r] 非空白字元
		\w	等於 [a-zA-Z_0-9] 數字或是英文字
		\W	等於 [^a-zA-Z_0-9] 非數字與英文字：符號
		
		[abc]	a、b或c
		[^abc]	非a、b、c的其它字元
		[a-zA-Z]	a到z或A到Z（範圍）
		[a-d[m-p]]	a到d或m到p（聯集）[a-dm-p]
		[a-z&&[def]]	d、e或f（交集）
		[a-z&&[^bc]]	a到z，除了b與c之外（減集） [ad-z]
		[a-z&&[^m-p]]	a到z且沒有m到p（a-lq-z）（減集）[a-lq-z]
		
		X?	X出現一次或完全沒有
		X*	X出現零次或多次
		X+	X出現一次或多次
		X{n}	X出現n次
		X{n,}	X出現至少n次
		X{n,m}	X出現至少n次，但不超過m次
	 * 
	 */
	public static void main(String[] args) {
		String patternStr = "\\d{4}-\\d{6}";
		Matcher matcher = checkRegexData(patternStr, "0912-123456");
		System.out.println(matcher.matches());
				
		patternStr = "^(\\w+)@(\\w.+)";
		matcher = checkRegexData(patternStr, "test@testMail.com.tw");
		System.out.println(matcher.matches());
		
		
		String tempStr = "2012-16-27 AM:11";
		System.out.println(tempStr.matches("\\d{4}-\\d{2}-\\d{2} \\D{2}:\\d{2}"));
		
		tempStr = "A123456789";
		System.out.println(tempStr.matches("^[\\D]\\d{9}"));
		
//		tempStr = "test@testMail.com.tw";
//		System.out.println(tempStr.matches("(\\w)@(\\w.)"));
		
		
		Pattern pa = Pattern.compile("\\D{4}");
		System.out.println(pa.matcher("nick").matches());
				
	}
	
	private static Matcher checkRegexData(String patternStr, String tempMsg) {
		Pattern pattern = Pattern.compile(patternStr);
		return pattern.matcher(tempMsg);
	}

	
}
